﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AleaBelli.Core.Data
{
    public class Battle
    {
        public Battle()
        {
            Supporters = new List<Hex>();
            Tempo = BattleTempo.Probe;
            SubBattles = new List<SubBattle>();
            ReserveDefenders = new List<Battalion>();
        }

        public int Id
        {
            get;
            set;
        }

        public string Name { get; set; }

        public Hex DefendingHex
        {
            get;
            set;
        }

        public Hex AttackerHex
        {
            get;
            set;
        }


        public List<Hex> Supporters
        {
            get;
            set;
        }

        public List<SubBattle> SubBattles
        {
            get;
            set;
        }

        public List<Battalion> ReserveDefenders
        {
            get;
            set;
        }

        public BattleTempo Tempo
        {
            get;
            set;
        }


        public bool Complete 
        { 
            get; 
            set; 
        }

        public int Duration 
        { 
            get; 
            set; 
        }
    }

    public enum BattleTempo
    {
        Probe = 1,
        Attack = 2,
        Assault = 3
    }

    public enum BattleResult
    {
        Stalemate = 1,
        AttackerWins = 2,
        AttackerBreakthru = 3,
        DefenderWins = 4
    }
}
